package Base.ExceptionTest;

import org.junit.Test;

/*
 * @author 枫城
 * @createTime 2022/10/17 21:55
 * @desc 异常处理：抓抛模型
 *  过程一: "抛":程序在正常执行的过程中，一旦出现异常，就会在异常代码处生成一个对应异常类的对象。
 *              并将此对象抛出，抛出后后续代码不在执行
 *
 *  过程二: "抓'：可以理解为异常的处理方式:  ①try-catch-finally    ②throws
 *
 */
public class TryCashTest {

    @Test
    public void test1(){
        try {
            String str = "123";
            str = "abc";
            int num = Integer.parseInt(str);
        }catch (NumberFormatException e){
            System.out.println("出现数值转换异常！");
            //方式一： 查看异常问题与位置
            e.printStackTrace();
            // 方式二：
            System.out.println(e.getMessage());
        }
    }

    public int method(){
        try{
            int[] arr = new int[10];
            System.out.println(arr[10]); // 此处异常
            return 1;
        }catch (ArrayIndexOutOfBoundsException e){
            e.printStackTrace();
            return 2;
        }finally {
            System.out.println("此段代码一定执行！");
//            return 3;
        }
    }

    @Test
    public void test2(){
        System.out.println(method());
    }


}
